﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace Elca.MvvmHelpers {
    public interface IBrowseFileSystem {

        /// <summary>
        /// Asks the user for a file name where data can be saved.
        /// </summary>
        /// <param name="title">Title of the save file dialog</param>
        /// <param name="path">If the user confirms the request, the path is returned here</param>
        /// <param name="fileType">The file type description, in the current language</param>
        /// <param name="extension">The default extension of the file</param>
        /// <param name="defaultPath">Path where the file browser should be open</param>
        /// <returns>True if the user confirms the request, false otherwise</returns>
        bool AskForFileToSave(string title, string fileType, string extension, string defaultPath, out string path);

        /// <summary>
        /// Asks the user for an existing file name where data can be read from.
        /// </summary>
        /// <param name="title">Title of the open file dialog</param>
        /// <param name="path">If the user confirms the request, the path is returned here</param>
        /// <param name="fileType">The file type description, in the current language</param>
        /// <param name="defaultPath">Path where the file browser should be open</param>
        /// <param name="extension">The default extension of the file</param>
        /// <returns>True if the user confirms the request, false otherwise</returns>
        bool AskForFileToOpen(string title, string fileType, string extension, string defaultPath, out string path);

        /// <summary>
        /// Asks the user for an existing file name where data can be read from.
        /// </summary>
        /// <param name="title">Title of the open file dialog</param>
        /// <param name="path">If the user confirms the request, the path is returned here</param>
        /// <param name="defaultPath">Path where the file browser should be open</param>
        /// <returns>True if the user confirms the request, false otherwise</returns>
        bool AskForDirectory(string title, string defaultPath, out string path);
    }
}
